[PATCH]xmms find song feature

castorpilot <[email protected]> Sat, 21 Oct 2006 19:53:03 +0200
Newsgroups gmane.comp.multimedia.xmms.devel
Message-ID <[email protected]>
------=_Part_186624_22910759.1161453183380
Content-Type: multipart/alternative; 
	boundary="----=_Part_186625_24021593.1161453183380"

------=_Part_186625_24021593.1161453183380
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

Hello all,

I have a pretty long playlist and I often look for a particular song in it.
I grew a bit tired of having to scroll the whole thing, and I wrote a quick
patch to find a particular song. It prompts for a search string, matches
the first title that contains this string, selects the song and scrolls the
playlist window to it. There is also a "Find next" feature.
The patch is against the 1.2.10 version.
If anyone is interested, I will try to make it a bit less of a ugly hack :)

Cheers
Fred

------=_Part_186625_24021593.1161453183380
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

Hello all,<br><br>I have a pretty long playlist and I often look for a particular song in it.<br>I grew a bit tired of having to scroll the whole thing, and I wrote a quick<br>patch to find a particular song. It prompts for a search string, matches 
<br>the first title that contains this string, selects the song and scrolls the <br>playlist window to it. There is also a &quot;Find next&quot; feature.<br>The patch is against the 1.2.10 version. <br>If anyone is interested, I will try to make it a bit less of a ugly hack :)
<br><br>Cheers<br>Fred<br><br>

------=_Part_186625_24021593.1161453183380--

------=_Part_186624_22910759.1161453183380
Content-Type: application/octet-stream; name="xmms-find.patch"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="xmms-find.patch"
X-Attachment-Id: f_etk92lua

ZGlmZiAtcnUgeG1tcy0xLjIuMTAveG1tcy9wbGF5bGlzdC5jIHhtbXMtMS4yLjEwLWZpbmQveG1t
cy9wbGF5bGlzdC5jCi0tLSB4bW1zLTEuMi4xMC94bW1zL3BsYXlsaXN0LmMJMjAwNC0wMi0yMyAy
MTozMTo0My4wMDAwMDAwMDAgKzAxMDAKKysrIHhtbXMtMS4yLjEwLWZpbmQveG1tcy9wbGF5bGlz
dC5jCTIwMDYtMTAtMjEgMDI6MDk6NTMuMDAwMDAwMDAwICswMjAwCkBAIC0yMiw2ICsyMiw4IEBA
CiAjaW5jbHVkZSAibGlieG1tcy91dGlsLmgiCiAjaW5jbHVkZSA8c3lzL3N0YXQuaD4KICNpbmNs
dWRlIDx1bmlzdGQuaD4KKyNkZWZpbmUgX0dOVV9TT1VSQ0UKKyNpbmNsdWRlIDxzdHJpbmcuaD4K
IAogR0xpc3QgKnBsYXlsaXN0ID0gTlVMTDsKIEdMaXN0ICpzaHVmZmxlX2xpc3QgPSBOVUxMOwpA
QCAtMTU3OCwxMyArMTU4MCwzMyBAQAogCVBMX1VOTE9DSygpOwogfQogCi12b2lkIHBsYXlsaXN0
X3JldmVyc2Uodm9pZCkKK2ludCBwbGF5bGlzdF9maW5kKGNoYXIgKnN0ciwgaW50IHBvc2l0aW9u
KQogeworCUdMaXN0ICpub2RlOwogCVBMX0xPQ0soKTsKLQlwbGF5bGlzdCA9IGdfbGlzdF9yZXZl
cnNlKHBsYXlsaXN0KTsKKwlub2RlID0gcGxheWxpc3Q7CisJaW50IHBvcyA9IDA7CisJd2hpbGUg
KG5vZGUpCisJeworCQlQbGF5bGlzdEVudHJ5ICplbnRyeSA9IG5vZGUtPmRhdGE7CisJCWlmKChz
dHJjYXNlc3RyKGVudHJ5LT50aXRsZSwgc3RyKSAhPSBOVUxMKSAmJiAocG9zID4gcG9zaXRpb24p
KXsKKwkJCWVudHJ5LT5zZWxlY3RlZCA9IFRSVUU7CisJCQlQTF9VTkxPQ0soKTsKKwkJCXJldHVy
biBwb3M7CisJCX0KKwkJcG9zKys7CisJCW5vZGUgPSBnX2xpc3RfbmV4dChub2RlKTsKKwl9CiAJ
UExfVU5MT0NLKCk7CisJcmV0dXJuIC0xOwogfQogCit2b2lkIHBsYXlsaXN0X3JldmVyc2Uodm9p
ZCkKK3sKKwlQTF9MT0NLKCk7CisJcGxheWxpc3QgPSBnX2xpc3RfcmV2ZXJzZShwbGF5bGlzdCk7
CisJUExfVU5MT0NLKCk7IAorfQogc3RhdGljIEdMaXN0ICpwbGF5bGlzdF9zaHVmZmxlX2xpc3Qo
R0xpc3QgKmxpc3QpCiB7CiAJLyogQ2FsbGVyIHNob3VsZCBob2xkIHBsYXlsaXN0IG11dGV4ICov
CmRpZmYgLXJ1IHhtbXMtMS4yLjEwL3htbXMvcGxheWxpc3QuaCB4bW1zLTEuMi4xMC1maW5kL3ht
bXMvcGxheWxpc3QuaAotLS0geG1tcy0xLjIuMTAveG1tcy9wbGF5bGlzdC5oCTIwMDQtMDEtMTcg
MDE6MjI6MTcuMDAwMDAwMDAwICswMTAwCisrKyB4bW1zLTEuMi4xMC1maW5kL3htbXMvcGxheWxp
c3QuaAkyMDA2LTEwLTIxIDAxOjQ4OjA4LjAwMDAwMDAwMCArMDIwMApAQCAtNzIsNiArNzIsNyBA
QAogdm9pZCBwbGF5bGlzdF9zb3J0X3NlbGVjdGVkX2J5X3BhdGgodm9pZCk7CiB2b2lkIHBsYXls
aXN0X3NvcnRfc2VsZWN0ZWRfYnlfZGF0ZSh2b2lkKTsKIHZvaWQgcGxheWxpc3RfcmV2ZXJzZSh2
b2lkKTsKK2ludCBwbGF5bGlzdF9maW5kKGNoYXIgKnN0cixpbnQgcG9zaXRpb24pOwogdm9pZCBw
bGF5bGlzdF9yYW5kb20odm9pZCk7CiB2b2lkIHBsYXlsaXN0X3JlbW92ZV9kZWFkX2ZpbGVzKHZv
aWQpOwogdm9pZCBwbGF5bGlzdF9maWxlaW5mb19jdXJyZW50KHZvaWQpOwpkaWZmIC1ydSB4bW1z
LTEuMi4xMC94bW1zL3BsYXlsaXN0d2luLmMgeG1tcy0xLjIuMTAtZmluZC94bW1zL3BsYXlsaXN0
d2luLmMKLS0tIHhtbXMtMS4yLjEwL3htbXMvcGxheWxpc3R3aW4uYwkyMDA0LTAyLTIzIDIxOjMx
OjQzLjAwMDAwMDAwMCArMDEwMAorKysgeG1tcy0xLjIuMTAtZmluZC94bW1zL3BsYXlsaXN0d2lu
LmMJMjAwNi0xMC0yMSAwMjozMzo0OS4wMDAwMDAwMDAgKzAyMDAKQEAgLTIwLDkgKzIwLDEzIEBA
CiAjaW5jbHVkZSAieG1tcy5oIgogI2luY2x1ZGUgImxpYnhtbXMvZGlyYnJvd3Nlci5oIgogI2lu
Y2x1ZGUgImxpYnhtbXMvdXRpbC5oIgorI2luY2x1ZGUgPHN0cmluZy5oPgogCiBHdGtXaWRnZXQg
KnBsYXlsaXN0d2luOwogc3RhdGljIEd0a1dpZGdldCAqcGxheWxpc3R3aW5fdXJsX3dpbmRvdyA9
IE5VTEw7CitzdGF0aWMgR3RrV2lkZ2V0ICpwbGF5bGlzdHdpbl9maW5kX3dpbmRvdyA9IE5VTEw7
CitpbnQgcG9zaXRpb24gPSAtMTsKK2NoYXIgZmluZHRleHRbMTAwXSA9ICIiOwogc3RhdGljIEd0
a0l0ZW1GYWN0b3J5ICpwbGF5bGlzdHdpbl9zb3J0X21lbnUsICpwbGF5bGlzdHdpbl9zdWJfbWVu
dTsKIHN0YXRpYyBHdGtJdGVtRmFjdG9yeSAqcGxheWxpc3R3aW5fcG9wdXBfbWVudSwgKnBsYXls
aXN0d2luX3NhdmVfbWVudTsKIHN0YXRpYyBHdGtBY2NlbEdyb3VwICpwbGF5bGlzdHdpbl9hY2Nl
bDsKQEAgLTY2LDcgKzcwLDcgQEAKIAlBRERfVVJMLCBBRERfRElSLCBBRERfRklMRSwKIAlTVUJf
TUlTQywgU1VCX0FMTCwgU1VCX0NST1AsIFNVQl9TRUxFQ1RFRCwKIAlTRUxfSU5WLCBTRUxfWkVS
TywgU0VMX0FMTCwKLQlNSVNDX1NPUlQsIE1JU0NfRklMRUlORk8sIE1JU0NfTUlTQ09QVFMsIE1J
U0NfUVVFVUUsCisJTUlTQ19TT1JULCBNSVNDX0ZJTEVJTkZPLCBNSVNDX01JU0NPUFRTLCBNSVND
X1FVRVVFLFBMQVlMSVNUV0lOX0ZJTkQsUExBWUxJU1RXSU5fRklORE5FWFQsCiAJUExJU1RfTkVX
LCBQTElTVF9TQVZFLCBQTElTVF9MT0FELAogCVNFTF9MT09LVVAsCiB9OwpAQCAtODYsNyArOTAs
OCBAQAogCVBMQVlMSVNUV0lOX1NPUlRfQllQQVRILCBQTEFZTElTVFdJTl9TT1JUX0JZREFURSwK
IAlQTEFZTElTVFdJTl9TT1JUX1NFTF9CWVRJVExFLCBQTEFZTElTVFdJTl9TT1JUX1NFTF9CWUZJ
TEVOQU1FLAogCVBMQVlMSVNUV0lOX1NPUlRfU0VMX0JZUEFUSCwgUExBWUxJU1RXSU5fU09SVF9T
RUxfQllEQVRFLAotCVBMQVlMSVNUV0lOX1NPUlRfUkFORE9NSVpFLCBQTEFZTElTVFdJTl9TT1JU
X1JFVkVSU0UKKwlQTEFZTElTVFdJTl9TT1JUX1JBTkRPTUlaRSwgUExBWUxJU1RXSU5fU09SVF9S
RVZFUlNFLCAKKwogfTsKIAogR3RrSXRlbUZhY3RvcnlFbnRyeSBwbGF5bGlzdHdpbl9zb3J0X21l
bnVfZW50cmllc1tdID0KQEAgLTE1NCw2ICsxNTksOCBAQAogewogCXtOXygiL1ZpZXcgRmlsZSBJ
bmZvIiksICI8Y29udHJvbD4zIiwgcGxheWxpc3R3aW5fcG9wdXBfbWVudV9jYWxsYmFjaywgTUlT
Q19GSUxFSU5GTywgIjxJdGVtPiJ9LAogCXtOXygiL1F1ZXVlIC0gVW5xdWV1ZSIpLCAiUSIsIHBs
YXlsaXN0d2luX3BvcHVwX21lbnVfY2FsbGJhY2ssIE1JU0NfUVVFVUUsICI8SXRlbT4ifSwKKwl7
Tl8oIi9GaW5kIiksICJGIiwgcGxheWxpc3R3aW5fcG9wdXBfbWVudV9jYWxsYmFjayxQTEFZTElT
VFdJTl9GSU5ELCAiPEl0ZW0+In0sCisgICAgICAgIHtOXygiL0ZpbmQgTmV4dCIpLCAiTiIsIHBs
YXlsaXN0d2luX3BvcHVwX21lbnVfY2FsbGJhY2ssUExBWUxJU1RXSU5fRklORE5FWFQsICI8SXRl
bT4ifSwKIAl7Tl8oIi8tIiksIE5VTEwsIE5VTEwsIDAsICI8U2VwYXJhdG9yPiJ9LAogCXtOXygi
L0FkZCIpLCBOVUxMLCBOVUxMLCAwLCAiPEJyYW5jaD4ifSwKIAl7Tl8oIi9BZGQvRmlsZSIpLCBO
VUxMLCBwbGF5bGlzdHdpbl9wb3B1cF9tZW51X2NhbGxiYWNrLCBBRERfRklMRSwgIjxJdGVtPiJ9
LApAQCAtNjA3LDYgKzYxNCw1MCBAQAogCWd0a193aWRnZXRfZGVzdHJveShwbGF5bGlzdHdpbl91
cmxfd2luZG93KTsKIH0KIAorc3RhdGljIHZvaWQgcGxheWxpc3RfZmluZF9tYWluKHZvaWQpewor
ICAgICAgICAKKwlpbnQgazsKKwkgICAgICAgIAorCWsgPSBwbGF5bGlzdF9maW5kKGZpbmR0ZXh0
LCBwb3NpdGlvbik7CisgICAgICAgIGlmICggKGsgIT0gcG9zaXRpb24pICYmIChrICE9IC0xKSl7
CisJCXBvc2l0aW9uID0gazsKKwkJcGxheWxpc3R3aW5fbGlzdC0+cGxfZmlyc3QgPSBwb3NpdGlv
biAtIDM7ICAgCisgICAgICAgICAgICAgICAgcGxheWxpc3R3aW5fdXBkYXRlX2xpc3QoKTsKKwl9
IGVsc2UgeworCQlwb3NpdGlvbiA9IC0xOworCX0JCit9CisKK3N0YXRpYyB2b2lkIHBsYXlsaXN0
d2luX2ZpbmRfb2tfY2xpY2tlZChHdGtXaWRnZXQgKiB3LCBHdGtXaWRnZXQgKiBlbnRyeSkKK3sK
KyAgICAgICAgY2hhciAqdGV4dCwgKnRlbXA7CisKKyAgICAgICAgdGV4dCA9IGd0a19lbnRyeV9n
ZXRfdGV4dChHVEtfRU5UUlkoZW50cnkpKTsKKyAgICAgICAgaWYgKHRleHQgJiYgKnRleHQpCisg
ICAgICAgIHsKKyAgICAgICAgICAgICAgICBnX3N0cnN0cmlwKHRleHQpOworCQlzdHJuY3B5KGZp
bmR0ZXh0LHRleHQsOTkpOworCQlwb3NpdGlvbiA9IC0xOworCQlwbGF5bGlzdF9maW5kX21haW4o
KTsKKyAgICAgICAgfQorICAgICAgICBndGtfd2lkZ2V0X2Rlc3Ryb3kocGxheWxpc3R3aW5fZmlu
ZF93aW5kb3cpOworCit9CisKKwordm9pZCBwbGF5bGlzdHdpbl9zaG93X2FkZF9maW5kX3dpbmRv
dyh2b2lkKQoreworICAgICAgICBpZighcGxheWxpc3R3aW5fZmluZF93aW5kb3cpCisgICAgICAg
IHsKKyAgICAgICAgICAgICAgICBwbGF5bGlzdHdpbl9maW5kX3dpbmRvdyA9IHV0aWxfY3JlYXRl
X2FkZF91cmxfd2luZG93KF8oIkVudGVyIFNlYXJjaCBTdHJpbmc6IiksIEdUS19TSUdOQUxfRlVO
QyhwbGF5bGlzdHdpbl9maW5kX29rX2NsaWNrZWQpLCBOVUxMKTsKKyAgICAgICAgICAgICAgICBn
dGtfd2luZG93X3NldF90cmFuc2llbnRfZm9yKEdUS19XSU5ET1cocGxheWxpc3R3aW5fZmluZF93
aW5kb3cpLCBHVEtfV0lORE9XKHBsYXlsaXN0d2luKSk7CisgICAgICAgICAgICAgICAgZ3RrX3Np
Z25hbF9jb25uZWN0KEdUS19PQkpFQ1QocGxheWxpc3R3aW5fZmluZF93aW5kb3cpLCAiZGVzdHJv
eSIsIEdUS19TSUdOQUxfRlVOQyhndGtfd2lkZ2V0X2Rlc3Ryb3llZCksICZwbGF5bGlzdHdpbl9m
aW5kX3dpbmRvdyk7CisgICAgICAgICAgICAgICAgZ3RrX3dpZGdldF9zaG93KHBsYXlsaXN0d2lu
X2ZpbmRfd2luZG93KTsKKyAgICAgICAgfQorCit9CisKKwogdm9pZCBwbGF5bGlzdHdpbl9zaG93
X2FkZF91cmxfd2luZG93KHZvaWQpCiB7CiAJaWYoIXBsYXlsaXN0d2luX3VybF93aW5kb3cpCkBA
IC0yMDcxLDYgKzIxMjIsMTQgQEAKIAkJCWVsc2UgaWYgKHBvcyAhPSAtMSkKIAkJCQlwbGF5bGlz
dF9xdWV1ZV9wb3NpdGlvbihwb3MgLSAxKTsKIAkJCWJyZWFrOworCQljYXNlIFBMQVlMSVNUV0lO
X0ZJTkQ6CisgICAgICAgICAgICAgICAgICAgICAgICBwbGF5bGlzdHdpbl9zZWxlY3Rfbm9uZSgp
OworICAgICAgICAgICAgICAgICAgICAgICAgcGxheWxpc3R3aW5fc2hvd19hZGRfZmluZF93aW5k
b3coKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNh
c2UgUExBWUxJU1RXSU5fRklORE5FWFQ6CisgICAgICAgICAgICAgICAgICAgICAgICBwbGF5bGlz
dHdpbl9zZWxlY3Rfbm9uZSgpOworICAgICAgICAgICAgICAgICAgICAgICAgcGxheWxpc3RfZmlu
ZF9tYWluKCk7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKIAkJY2FzZSBTRUxfTE9P
S1VQOgogCQkJcGxheWxpc3RfcmVhZF9pbmZvX3NlbGVjdGlvbigpOwogCQkJYnJlYWs7Cg==
------=_Part_186624_22910759.1161453183380
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
xmms-devel mailing list
[email protected]
http://lists.xmms.org/mailman/listinfo/xmms-devel

------=_Part_186624_22910759.1161453183380--