[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 "Find next" 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--