Proposed widget type: image
Scott Meharg <[email protected]> Wed, 22 Jan 2014 16:28:54 -0600
| Newsgroups | gmane.comp.sysutils.lcdproc |
|---|---|
| Message-ID | <CAOgbcjRYPcTysY65G2KPpxdjqwovw8zfYmYMt1ZfbFcGAtHfmA@mail.gmail.com> |
--047d7b5db9c4656c9504f096a67e Content-Type: multipart/alternative; boundary=047d7b5db9c4656c8f04f096a67c --047d7b5db9c4656c8f04f096a67c Content-Type: text/plain; charset=ISO-8859-1 If interested, attached is a patch that adds a new widget type for displaying images files on graphic LCDs that use the glcd driver. Only PNG image files are supported. glcd_render_image attempts to transform the image to 24 bits/pixel and transparency is removed by compositing against a white background. Any pixel not white will be turned on on the LCD. If need be I will work on updating the documentation. Would this be considered a new version of the API? --047d7b5db9c4656c8f04f096a67c Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable <div dir=3D"ltr">If interested, attached is a patch that adds a new widget = type for displaying images files on graphic LCDs that use the glcd driver.<= div><br></div><div>Only PNG image files are supported. =A0glcd_render_image= attempts to transform the image to 24 bits/pixel and transparency is remov= ed by compositing against a white background. =A0Any pixel not white will b= e turned on on the LCD.</div> <div><br></div><div>If need be I will work on updating the documentation.</= div><div><br></div><div>Would this be considered a new version of the API?<= /div><div><br></div><div><br></div></div> --047d7b5db9c4656c8f04f096a67c-- --047d7b5db9c4656c9504f096a67e Content-Type: text/x-patch; charset=US-ASCII; name="widget_image.patch" Content-Disposition: attachment; filename="widget_image.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_hqr5w6pi0 ZGlmZiAtdXJOIC1YIC4vbGNkcHJvYy9kaWZmX2lnbm9yZSAuL2xjZHByb2Mvc2VydmVyL2NvbW1h bmRzL3dpZGdldF9jb21tYW5kcy5jIC4vbW9kaWZpZWQvc2VydmVyL2NvbW1hbmRzL3dpZGdldF9j b21tYW5kcy5jCi0tLSAuL2xjZHByb2Mvc2VydmVyL2NvbW1hbmRzL3dpZGdldF9jb21tYW5kcy5j CTIwMTItMDItMjIgMTY6MjU6MzIuMDAwMDAwMDAwIC0wNjAwCisrKyAuL21vZGlmaWVkL3NlcnZl ci9jb21tYW5kcy93aWRnZXRfY29tbWFuZHMuYwkyMDE0LTAxLTIyIDE0OjM4OjM0LjE1MTM5NDM0 NyAtMDYwMApAQCAtNDQwLDYgKzQ0MCw0MiBAQAogCQkJc29ja19zZW5kX3N0cmluZyhjLT5zb2Nr LCAic3VjY2Vzc1xuIik7CiAJCX0KIAkJYnJlYWs7CisJY2FzZSBXSURfSU1BR0U6CQkvKiBJbWFn ZSB0YWtlcyB4LCB5LCA8aW1hZ2VfZmlsZW5hbWU+ICovCisJCWlmIChhcmdjICE9IGkgKyAzKQor CQkJc29ja19zZW5kX2Vycm9yKGMtPnNvY2ssICJXcm9uZyBudW1iZXIgb2YgYXJndW1lbnRzXG4i KTsKKwkJZWxzZSB7CisJCQkvKiBGb3IgaW1hZ2VzIGxldCdzIGFsbG93IG5lZ2F0aXZlIGNvb3Jk aW5hdGVzICovCisJCQkvKiBUaGlzIHdpbGwgYXNzdW1lIHRoZSBkcml2ZXIgd2lsbCBoYW5kbGUg aXQgKi8KKwkJCQorCQkJLyogdGhpcyBwcm9iYWJseSBuZWVkcyB0byBiZSBkb25lIGJldHRlci4u LgorCQkJICogaWYgdGhlIGZpcnN0IGNoYXIgaXMgJy0nIHRoZW4gdGVzdCB0aGUgbmV4dAorCQkJ ICogZm9yIGEgZGlnaXQuCisJCQkgKi8KKwkJCWludCBqeCA9IDA7CisJCQlpbnQgankgPSAwOwor CQkJCisJCQlpZiAoYXJndltpXVswXSA9PSAnLScpCisJCQkJangrKzsKKwkJCWlmIChhcmd2W2kr MV1bMF0gPT0gJy0nKQorCQkJCWp5Kys7CisJCQkJCQkJCisJCQlpZiAoKCFpc2RpZ2l0KChpbnQp IGFyZ3ZbaV1banhdKSkgfHwKKwkJCSAgICAoIWlzZGlnaXQoKGludCkgYXJndltpICsgMV1banld KSkpIHsKKwkJCQlzb2NrX3NlbmRfZXJyb3IoYy0+c29jaywgIkludmFsaWQgY29vcmRpbmF0ZXNc biIpOworCQkJfSBlbHNlIHsKKwkJCQl4ID0gYXRvaShhcmd2W2ldKTsKKwkJCQl5ID0gYXRvaShh cmd2W2kgKyAxXSk7CisJCQkJdy0+eCA9IHg7CisJCQkJdy0+eSA9IHk7CisJCQkJdy0+dGV4dCA9 IHN0cmR1cChhcmd2W2kgKyAyXSk7CisJCQkJaWYgKHctPnRleHQgPT0gTlVMTCkgeworCQkJCQly ZXBvcnQoUlBUX1dBUk5JTkcsICJ3aWRnZXRfc2V0X2Z1bmM6IEFsbG9jYXRpb24gZXJyb3IiKTsK KwkJCQkJcmV0dXJuIC0xOworCQkJCX0JCisJCQkJc29ja19zZW5kX3N0cmluZyhjLT5zb2NrLCAi c3VjY2Vzc1xuIik7CisJCQl9CisJCX0KKwkJYnJlYWs7CiAJY2FzZSBXSURfTk9ORToKIAlkZWZh dWx0OgogCQlzb2NrX3NlbmRfZXJyb3IoYy0+c29jaywgIldpZGdldCBoYXMgbm8gdHlwZVxuIik7 CmRpZmYgLXVyTiAtWCAuL2xjZHByb2MvZGlmZl9pZ25vcmUgLi9sY2Rwcm9jL3NlcnZlci9kcml2 ZXIuYyAuL21vZGlmaWVkL3NlcnZlci9kcml2ZXIuYwotLS0gLi9sY2Rwcm9jL3NlcnZlci9kcml2 ZXIuYwkyMDEyLTA5LTAxIDE2OjI0OjM5LjAwMDAwMDAwMCAtMDUwMAorKysgLi9tb2RpZmllZC9z ZXJ2ZXIvZHJpdmVyLmMJMjAxNC0wMS0yMiAxNDowNzoyNS40NTExNTgwNzYgLTA2MDAKQEAgLTcy LDYgKzcyLDcgQEAKIAl7ICJvdXRwdXQiLCAgICAgICAgICAgICBvZmZzZXRvZihEcml2ZXIsIG91 dHB1dCksICAgICAgICAgICAgIDAgfSwKIAl7ICJnZXRfa2V5IiwgICAgICAgICAgICBvZmZzZXRv ZihEcml2ZXIsIGdldF9rZXkpLCAgICAgICAgICAgIDAgfSwKIAl7ICJnZXRfaW5mbyIsICAgICAg ICAgICBvZmZzZXRvZihEcml2ZXIsIGdldF9pbmZvKSwgICAgICAgICAgIDAgfSwKKwl7ICJpbWFn ZSIsICAgICAgICAgICAgICBvZmZzZXRvZihEcml2ZXIsIGltYWdlKSwgICAgICAgICAgICAgIDAg fSwKIAl7IE5VTEwsIDAsIDAgfQogfTsKIApkaWZmIC11ck4gLVggLi9sY2Rwcm9jL2RpZmZfaWdu b3JlIC4vbGNkcHJvYy9zZXJ2ZXIvZHJpdmVycy9nbGNkX2Rydi5jIC4vbW9kaWZpZWQvc2VydmVy L2RyaXZlcnMvZ2xjZF9kcnYuYwotLS0gLi9sY2Rwcm9jL3NlcnZlci9kcml2ZXJzL2dsY2RfZHJ2 LmMJMjAxMy0wNS0wNCAwOTozMToxNS4wMDAwMDAwMDAgLTA1MDAKKysrIC4vbW9kaWZpZWQvc2Vy dmVyL2RyaXZlcnMvZ2xjZF9kcnYuYwkyMDE0LTAxLTIyIDE1OjE2OjAwLjE4MzU5NjMzOCAtMDYw MApAQCAtNzY2LDMgKzc2NiwxMSBAQAogCiAJcmV0dXJuIGtleXN0cjsKIH0KKworI2lmZGVmIEhB VkVfTElCUE5HCitNT0RVTEVfRVhQT1JUIHZvaWQKK2dsY2RfaW1hZ2UoRHJpdmVyICpkcnZ0aGlz LCBpbnQgeCwgaW50IHksIGNvbnN0IGNoYXIgKmltYWdlZmlsZW5hbWUpCit7CisJZ2xjZF9yZW5k ZXJfaW1hZ2UoZHJ2dGhpcywgeCwgeSwgaW1hZ2VmaWxlbmFtZSk7Cit9CisjZW5kaWYgLyogSEFW RV9MSUJQTkcgKi8KZGlmZiAtdXJOIC1YIC4vbGNkcHJvYy9kaWZmX2lnbm9yZSAuL2xjZHByb2Mv c2VydmVyL2RyaXZlcnMvZ2xjZF9kcnYuaCAuL21vZGlmaWVkL3NlcnZlci9kcml2ZXJzL2dsY2Rf ZHJ2LmgKLS0tIC4vbGNkcHJvYy9zZXJ2ZXIvZHJpdmVycy9nbGNkX2Rydi5oCTIwMTEtMTItMDMg MTQ6MTA6NDEuMDAwMDAwMDAwIC0wNjAwCisrKyAuL21vZGlmaWVkL3NlcnZlci9kcml2ZXJzL2ds Y2RfZHJ2LmgJMjAxNC0wMS0yMiAxNToxNTo1Ni45MjAwMTM3MjIgLTA2MDAKQEAgLTI3LDQgKzI3 LDkgQEAKIE1PRFVMRV9FWFBPUlQgdm9pZCBnbGNkX291dHB1dChEcml2ZXIgKmRydnRoaXMsIGlu dCB2YWx1ZSk7CiAKIE1PRFVMRV9FWFBPUlQgY29uc3QgY2hhciAqZ2xjZF9nZXRfa2V5KERyaXZl ciAqZHJ2dGhpcyk7CisKKyNpZmRlZiBIQVZFX0xJQlBORworTU9EVUxFX0VYUE9SVCB2b2lkIGds Y2RfaW1hZ2UoRHJpdmVyICpkcnZ0aGlzLCBpbnQgeCwgaW50IHksIGNvbnN0IGNoYXIgKmltYWdl ZmlsZW5hbWUpOworI2VuZGlmCisKICNlbmRpZgpkaWZmIC11ck4gLVggLi9sY2Rwcm9jL2RpZmZf aWdub3JlIC4vbGNkcHJvYy9zZXJ2ZXIvZHJpdmVycy9nbGNkLXJlbmRlci5jIC4vbW9kaWZpZWQv c2VydmVyL2RyaXZlcnMvZ2xjZC1yZW5kZXIuYwotLS0gLi9sY2Rwcm9jL3NlcnZlci9kcml2ZXJz L2dsY2QtcmVuZGVyLmMJMjAxMy0xMi0yNCAxMTo1Mzo1NS4wMDAwMDAwMDAgLTA2MDAKKysrIC4v bW9kaWZpZWQvc2VydmVyL2RyaXZlcnMvZ2xjZC1yZW5kZXIuYwkyMDE0LTAxLTIyIDE1OjIzOjAy Ljk5Mzk0MTI4NiAtMDYwMApAQCAtMjMsNiArMjMsMTEgQEAKICNpbmNsdWRlIEZUX0ZSRUVUWVBF X0gKICNlbmRpZgogCisjaWZkZWYgSEFWRV9MSUJQTkcKKyNkZWZpbmUgUE5HX1NLSVBfU0VUSk1Q X0NIRUNLCisjaW5jbHVkZSA8cG5nLmg+CisjZW5kaWYKKwogI2luY2x1ZGUgImxjZC5oIgogI2lu Y2x1ZGUgInJlcG9ydC5oIgogI2luY2x1ZGUgImdsY2QtbG93LmgiCkBAIC00MzIsMyArNDM3LDE1 MSBAQAogCQlweCsrOwogCX0KIH0KKworI2lmZGVmIEhBVkVfTElCUE5HCisvKioKKyAqIERyYXcg dGhlIFBORyBpbWFnZSB0byB0aGUgZnJhbWUgYnVmZmVyLgorICogQ3VycmVubHR5IG9ubHkgUE5H IGZpbGVzIGFyZSBzdXBwb3J0ZWQgdGhhdCBjYW4gYmUgc3VjY2Vzc2Z1bGx5IAorICogY29udmVy dGVkIHRvIDI0IGJpdHMvcGl4ZWwgUkdCIGZvcm1hdC4KKyAqIAorICogXHBhcmFtIGRydnRoaXMg ICAgICAgICAgUG9pbnRlciB0byBkcml2ZXIgc3RydWN0dXJlLgorICogXHBhcmFtIHggICAgICAg ICAgICAgICAgTGVmdCBwaXhlbCBwb3NpdGlvbiB0byBzdGFydCBkcmF3aW5nLgorICogXHBhcmFt IHkgICAgICAgICAgICAgICAgVG9wIHBpeGVsIHBvc2l0aW9uIHRvIHN0YXJ0IGRyYXdpbmcuCisg KiBccGFyYW0gaW1hZ2VmaWxlbmFtZSAgICBGaWxlIG5hbWUgb2YgaW1hZ2UgdG8gbG9hZC4KKyAq LworaW50CitnbGNkX3JlbmRlcl9pbWFnZShEcml2ZXIgKmRydnRoaXMsIGludCB4LCBpbnQgeSwg Y29uc3QgY2hhciAqaW1hZ2VmaWxlbmFtZSkKK3sKKwlQcml2YXRlRGF0YSAqcCA9IGRydnRoaXMt PnByaXZhdGVfZGF0YTsKKwkKKwlwbmdfc3RydWN0cCBwbmdfcHRyOworCXBuZ19pbmZvcCBpbmZv X3B0cjsKKwl1bnNpZ25lZCBpbnQgc2lnX3JlYWQgPSAwOworCUZJTEUgKmZwOworCXVuc2lnbmVk IGNoYXIgaGVhZGVyWzhdOworCQorCWludCBwbmdfdHJhbnNmb3JtczsKKwlwbmdfY29sb3JfMTYg YmFja2dyb3VuZF9jb2xvcjsKKworCWlmICgoZnAgPSBmb3BlbihpbWFnZWZpbGVuYW1lLCAicmIi KSkgPT0gTlVMTCkgeworCQlyZXBvcnQoUlBUX0VSUiwgIiVzOiBVbmFibGUgdG8gb3BlbiAlcyIs IGRydnRoaXMtPm5hbWUsIGltYWdlZmlsZW5hbWUpOworCQlyZXR1cm4gLTE7CisJfQorCQorCS8q IENoZWNrIGZvciBQTkcgc2lnbmF0dXJlICovCisJc2lnX3JlYWQgPSBmcmVhZChoZWFkZXIsIDEs IDgsIGZwKTsKKwlpZiAocG5nX3NpZ19jbXAoaGVhZGVyLCAwLCBzaWdfcmVhZCkgIT0gMCkgewor CQlyZXBvcnQoUlBUX0VSUiwgIiVzOiBGaWxlIG5vdCByZWNvZ25pemVkIGFzIGEgdmFsaWQgUE5H IGZpbGUhICAlcyIKKwkJCSwgZHJ2dGhpcy0+bmFtZSwgaW1hZ2VmaWxlbmFtZSk7CisJCXJldHVy biAtMTsKKwl9CisJCisJcG5nX3B0ciA9IHBuZ19jcmVhdGVfcmVhZF9zdHJ1Y3QoUE5HX0xJQlBO R19WRVJfU1RSSU5HLCBOVUxMLCBOVUxMLCBOVUxMKTsKKwlpZiAocG5nX3B0ciA9PSBOVUxMKQor CXsKKwkJcmVwb3J0KFJQVF9FUlIsICIlczogSW1hZ2UgZmlsZSAlc1xuIiwgZHJ2dGhpcy0+bmFt ZSwgaW1hZ2VmaWxlbmFtZSk7CisJCXJlcG9ydChSUFRfRVJSLCAiJXM6IHBuZ19jcmVhdGVfcmVh ZF9zdHJ1Y3QgZmFpbGVkISIsIGRydnRoaXMtPm5hbWUpOworCQlmY2xvc2UoZnApOworCQlyZXR1 cm4gLTE7CisJfQorCisJaW5mb19wdHIgPSBwbmdfY3JlYXRlX2luZm9fc3RydWN0KHBuZ19wdHIp OworCWlmIChpbmZvX3B0ciA9PSBOVUxMKQorCXsKKwkJcmVwb3J0KFJQVF9FUlIsICIlczogSW1h Z2UgZmlsZSAlc1xuIiwgZHJ2dGhpcy0+bmFtZSwgaW1hZ2VmaWxlbmFtZSk7CisJCXJlcG9ydChS UFRfRVJSLCAiJXM6IHBuZ19jcmVhdGVfaW5mb19zdHJ1Y3QgZmFpbGVkISIsIGRydnRoaXMtPm5h bWUpOworCQlmY2xvc2UoZnApOworCQlwbmdfZGVzdHJveV9yZWFkX3N0cnVjdCgmcG5nX3B0ciwg cG5nX2luZm9wcF9OVUxMLCBwbmdfaW5mb3BwX05VTEwpOworCQlyZXR1cm4gLTE7CisJfQorCisJ LyogU2V0IGVycm9yIGhhbmRsaW5nLiBSRVFVSVJFRCB1bmxlc3MgeW91IHNldCB1cCB5b3VyIG93 biBlcnJvciBoYW5kbGVycyBpbgorCSAqIHRoZSBwbmdfY3JlYXRlX3JlYWRfc3RydWN0KCkKKwkg Ki8KKwlpZiAoc2V0am1wKHBuZ19qbXBidWYocG5nX3B0cikpKQorCXsKKwkJLyogRnJlZSBhbGwg b2YgdGhlIG1lbW9yeSBhc3NvY2lhdGVkIHdpdGggdGhlIHBuZ19wdHIgYW5kIGluZm9fcHRyICov CisJCXBuZ19kZXN0cm95X3JlYWRfc3RydWN0KCZwbmdfcHRyLCAmaW5mb19wdHIsIHBuZ19pbmZv cHBfTlVMTCk7CisJCWZjbG9zZShmcCk7CisJCS8qIElmIHdlIGdldCBoZXJlLCB3ZSBoYWQgYSBw cm9ibGVtIHJlYWRpbmcgdGhlIGZpbGUgKi8KKwkJcmVwb3J0KFJQVF9FUlIsICIlczogSW1hZ2Ug ZmlsZSAlc1xuIiwgZHJ2dGhpcy0+bmFtZSwgaW1hZ2VmaWxlbmFtZSk7CisJCXJlcG9ydChSUFRf RVJSLCAiJXM6IGZhaWxlZCB0byByZWFkIG9yIHByb2Nlc3MhIiwgZHJ2dGhpcy0+bmFtZSk7CisJ CXJldHVybiAoLTEpOworCX0KKworCS8qIFNldCB1cCB0aGUgaW5wdXQgY29udHJvbCAqLworCXBu Z19pbml0X2lvKHBuZ19wdHIsIGZwKTsKKworCS8qIFdlIGhhdmUgYWxyZWFkeSByZWFkIHNvbWUg b2YgdGhlIHNpZ25hdHVyZSBzbyBsZXQgbGlicG5nIGtub3cuICovCisJcG5nX3NldF9zaWdfYnl0 ZXMocG5nX3B0ciwgc2lnX3JlYWQpOworCQorCS8qIFNldCBiYWNrZ3JvdW5kIHRvIHdoaXRlIHRv IHJlbW92ZSB0aGUgYWxwaGEgY2hhbm5lbC4gKi8KKwliYWNrZ3JvdW5kX2NvbG9yLmluZGV4ID0g MDsKKwliYWNrZ3JvdW5kX2NvbG9yLnJlZCA9IDI1NTsKKwliYWNrZ3JvdW5kX2NvbG9yLmdyZWVu ID0gMjU1OworCWJhY2tncm91bmRfY29sb3IuYmx1ZSA9IDI1NTsKKwliYWNrZ3JvdW5kX2NvbG9y LmdyYXkgPSAwOworCXBuZ19zZXRfYmFja2dyb3VuZChwbmdfcHRyLCAmYmFja2dyb3VuZF9jb2xv ciwgUE5HX0JBQ0tHUk9VTkRfR0FNTUFfU0NSRUVOLCAwLCAxKTsKKwkJCisJLyogVHJhbnNmb3Jt IHRoZSBQTkcgdG8gOC1iaXQgdmFsdWVzLCBSR0IgdHJpcGxldHMuICovCisJcG5nX3RyYW5zZm9y bXMgPSBQTkdfVFJBTlNGT1JNX1NUUklQXzE2IHwgUE5HX1RSQU5TRk9STV9FWFBBTkQgfCBQTkdf VFJBTlNGT1JNX0dSQVlfVE9fUkdCOworCQorCS8qIFJlYWQgZW50aXJlIGltYWdlIGF0IG9uY2Uu CisJICogSW1hZ2VzIHNob3VsZCBiZSBzbWFsbCBlbm91Z2ggZm9yIHRoaXMuICovCisJcG5nX3Jl YWRfcG5nKHBuZ19wdHIsIGluZm9fcHRyLCBwbmdfdHJhbnNmb3JtcywgcG5nX3ZvaWRwX05VTEwp OworCQorCS8qIFRoZSB0cmFuc29mbXJhdGlvbnMgbXVzdCB5aWVsZCAyNCBiaXRzL3BpeGVsLiAq LworCWlmIChpbmZvX3B0ci0+cGl4ZWxfZGVwdGggIT0gMjQpIHsKKwkJcmVwb3J0KFJQVF9FUlIs ICIlczogVW5hYmxlIHRvIGNvbnZlcnQgaW1hZ2UgdG8gMjQgYml0cy9waXhlbC5cbiIsIGRydnRo aXMtPm5hbWUpOworCQlyZXBvcnQoUlBUX0VSUiwgIiVzOiBJbWFnZSBmaWxlICVzXG4iLCBkcnZ0 aGlzLT5uYW1lLCBpbWFnZWZpbGVuYW1lKTsKKwkJcmVwb3J0KFJQVF9FUlIsICIlczogSW1hZ2Ug aW5mbyBhZnRlciB0cmFuc2Zvcm1zIHlpZWxkZWQgJWQgcGl4ZWxfZGVwdGhcbiIKKwkJCSwgZHJ2 dGhpcy0+bmFtZSwgaW5mb19wdHItPnBpeGVsX2RlcHRoKTsKKwkJcmV0dXJuIC0xOworCX0KKwkK KwkvKiBOb3cgZHJhdyBpbWFnZSB0byBmcmFtZWJ1ZiAqLworCXBuZ19ieXRlcHAgcm93X3BvaW50 ZXJzID0gcG5nX2dldF9yb3dzKHBuZ19wdHIsIGluZm9fcHRyKTsKKworCWludCBtYXhoLG1heHcs aW1neSxpbWd4LGIscm93YjsKKwl1bnNpZ25lZCBsb25nIHJnYjsKKwkJCQorCS8qIFRoaXMgb25s eSB3b3JrcyBpZiB0aGUgaW1hZ2Ugd2FzIHRyYW5zZm9ybWVkIHRvIDI0IGJpdHMvcGl4ZWwgaW4g UkdCCisJICogZm9ybWF0IHdpdGggc29saWQgd2hpdGUgYmFja2dyb3VuZC4KKwkgKiAqLworCQor CS8qIE9ubHkgZGVhbCB3aXRoIHdoYXQgdGhlIExDRCBjYW4gc2hvdy4gKi8KKwltYXhoID0gKGlu dClpbmZvX3B0ci0+aGVpZ2h0OworCW1heHcgPSAoaW50KWluZm9fcHRyLT53aWR0aDsKKwlpZiAo bWF4aCA+IHAtPmZyYW1lYnVmLnB4X2hlaWdodCkgbWF4aCA9IHAtPmZyYW1lYnVmLnB4X2hlaWdo dDsKKwlpZiAobWF4dyA+IHAtPmZyYW1lYnVmLnB4X3dpZHRoKSBtYXh3ID0gcC0+ZnJhbWVidWYu cHhfd2lkdGg7CisJCisJZm9yIChpbWd5ID0gMDsgaW1neSA8IG1heGg7IGltZ3krKykgeworCQlm b3IgKGltZ3ggPSAwOyBpbWd4IDwgbWF4dzsgaW1neCsrKSB7CisJCQlyZ2IgPSAwOworCQkJZm9y IChiID0gMDsgYiA8IDM7IGIrKykgeworCQkJCXJvd2IgPSAoaW1neCAqIDMpICsgYjsKKwkJCQly Z2IgKz0gKHJvd19wb2ludGVyc1tpbWd5XVtyb3diXSA8PCAoKDItYikqOCkpOworCQkJfQorCQkJ CisJCQkvKiBQb3NzaWJseSB1cGRhdGluZyB0aGUgZnJhbWVidWZmZXIgZGlyZWN0bHkgd291bGQg YmUgZmFzdGVyCisJCQkgKiBob3dldmVyIGZiX2RyYXdfcGl4ZWwgaGFuZGxlcyB0aGUgZnJhbWVi dWZmZXIgbGF5b3V0LgorCQkJICogKi8KKwkJCQorCQkJLyogSWYgcmdiIHZhbHVlcyBpcyBsZXNz IHRoZW4gdGhlIGJhY2tncm91bmQgY29sb3IuICovCisJCQlpZiAocmdiIDwgMHhGRkZGRkYpIHsK KwkJCQlmYl9kcmF3X3BpeGVsKCZwLT5mcmFtZWJ1ZiwgKHggKyBpbWd4KSwgKHkgKyBpbWd5KSwg RkJfQkxBQ0spOworCQkJfSBlbHNlIHsKKwkJCQlmYl9kcmF3X3BpeGVsKCZwLT5mcmFtZWJ1Ziwg KHggKyBpbWd4KSwgKHkgKyBpbWd5KSwgRkJfV0hJVEUpOworCQkJfQorCQl9CisJfQorCisJLyog Q2xlYW4gdXAgYWZ0ZXIgdGhlIHJlYWQsIGFuZCBmcmVlIGFueSBtZW1vcnkgYWxsb2NhdGVkLiAq LworCXBuZ19kZXN0cm95X3JlYWRfc3RydWN0KCZwbmdfcHRyLCAmaW5mb19wdHIsIHBuZ19pbmZv cHBfTlVMTCk7CisKKwkvKiBDbG9zZSB0aGUgZmlsZSAqLworCWZjbG9zZShmcCk7CisJCisJcmV0 dXJuIDA7Cit9CisjZW5kaWYgLyogSEFWRV9MSUJQTkcgKi8KZGlmZiAtdXJOIC1YIC4vbGNkcHJv Yy9kaWZmX2lnbm9yZSAuL2xjZHByb2Mvc2VydmVyL2RyaXZlcnMvZ2xjZC1yZW5kZXIuaCAuL21v ZGlmaWVkL3NlcnZlci9kcml2ZXJzL2dsY2QtcmVuZGVyLmgKLS0tIC4vbGNkcHJvYy9zZXJ2ZXIv ZHJpdmVycy9nbGNkLXJlbmRlci5oCTIwMTEtMTEtMjAgMDU6MTU6MzkuMDAwMDAwMDAwIC0wNjAw CisrKyAuL21vZGlmaWVkL3NlcnZlci9kcml2ZXJzL2dsY2QtcmVuZGVyLmgJMjAxNC0wMS0yMiAx NToxNjowMC4yMTE1OTI3NDMgLTA2MDAKQEAgLTExLDQgKzExLDggQEAKIHZvaWQgZ2xjZF9yZW5k ZXJfY2hhcl91bmljb2RlKERyaXZlciAqZHJ2dGhpcywgaW50IHgsIGludCB5LCBpbnQgYywgaW50 IHlzY2FsZSwgaW50IHhzY2FsZSk7CiAjZW5kaWYKIAorI2lmZGVmIEhBVkVfTElCUE5HCitpbnQg Z2xjZF9yZW5kZXJfaW1hZ2UoRHJpdmVyICpkcnZ0aGlzLCBpbnQgeCwgaW50IHksIGNvbnN0IGNo YXIgKmltYWdlZmlsZW5hbWUpOworI2VuZGlmCisKICNlbmRpZgpkaWZmIC11ck4gLVggLi9sY2Rw cm9jL2RpZmZfaWdub3JlIC4vbGNkcHJvYy9zZXJ2ZXIvZHJpdmVycy9sY2QuaCAuL21vZGlmaWVk L3NlcnZlci9kcml2ZXJzL2xjZC5oCi0tLSAuL2xjZHByb2Mvc2VydmVyL2RyaXZlcnMvbGNkLmgJ MjAxMS0xMS0xNSAxNTo0MDoyMy4wMDAwMDAwMDAgLTA2MDAKKysrIC4vbW9kaWZpZWQvc2VydmVy L2RyaXZlcnMvbGNkLmgJMjAxNC0wMS0yMiAxNDoyOToyMS45OTUwMjUwMzAgLTA2MDAKQEAgLTE1 OSw2ICsxNTksOSBAQAogCXZvaWQgKCpoZWFydGJlYXQpCShzdHJ1Y3QgbGNkX2xvZ2ljYWxfZHJp dmVyICpkcnZ0aGlzLCBpbnQgc3RhdGUpOwogCWludCAoKmljb24pCQkoc3RydWN0IGxjZF9sb2dp Y2FsX2RyaXZlciAqZHJ2dGhpcywgaW50IHgsIGludCB5LCBpbnQgaWNvbik7CiAJdm9pZCAoKmN1 cnNvcikJCShzdHJ1Y3QgbGNkX2xvZ2ljYWxfZHJpdmVyICpkcnZ0aGlzLCBpbnQgeCwgaW50IHks IGludCB0eXBlKTsKKwkKKwkvKiBleHRlbmRlZCBvdXRwdXQgZnVuY3Rpb25zIChvcHRpb25hbDsg Y29yZSBwcm92aWRlcyBOTyBBTFRFUk5BVElWRSAqLworCXZvaWQgKCppbWFnZSkJCShzdHJ1Y3Qg bGNkX2xvZ2ljYWxfZHJpdmVyICpkcnZ0aGlzLCBpbnQgeCwgaW50IHksIGNvbnN0IGNoYXIgKnN0 cik7CiAKIAkvKiB1c2VyLWRlZmluZWQgY2hhcmFjdGVyIGZ1bmN0aW9ucywgYXJlIHRob3NlIHN0 aWxsIHN1cHBvcnRlZCA/ICovCiAJdm9pZCAoKnNldF9jaGFyKQkoc3RydWN0IGxjZF9sb2dpY2Fs X2RyaXZlciAqZHJ2dGhpcywgaW50IG4sIHVuc2lnbmVkIGNoYXIgKmRhdCk7CmRpZmYgLXVyTiAt WCAuL2xjZHByb2MvZGlmZl9pZ25vcmUgLi9sY2Rwcm9jL3NlcnZlci9kcml2ZXJzLmMgLi9tb2Rp ZmllZC9zZXJ2ZXIvZHJpdmVycy5jCi0tLSAuL2xjZHByb2Mvc2VydmVyL2RyaXZlcnMuYwkyMDEy LTAyLTIyIDE2OjI1OjMyLjAwMDAwMDAwMCAtMDYwMAorKysgLi9tb2RpZmllZC9zZXJ2ZXIvZHJp dmVycy5jCTIwMTQtMDEtMjIgMTQ6NDE6MjAuMzczNDM0MDkwIC0wNjAwCkBAIC00NzUsMyArNDc1 LDIyIEBACiAJcmV0dXJuIE5VTEw7CiB9CiAKKy8qKgorICogV3JpdGUgaW1hZ2UgdG8gYWxsIGxv YWRlZCBkcml2ZXJzLgorICogRm9yIGRyaXZlcnMgdGhhdCBkZWZpbmUgYSBpbWFnZSgpIGZ1bmN0 aW9uLCBjYWxsIGl0OworICogXHBhcmFtIHggICAgICAgICAgICAgICBIb3Jpem9udGFsIHBpeGVs IHBvc2l0aW9uLgorICogXHBhcmFtIHkgICAgICAgICAgICAgICBWZXJ0aWNhbCBwaXhlbCBwb3Np dGlvbi4KKyAqIFxwYXJhbSBpbWFnZWZpbGVuYW1lICAgVGhlIGZpbGVuYW1lIG9mIHRoZSBpbWFn ZSB0aGF0IGdldHMgd3JpdHRlbi4KKyAqLwordm9pZAorZHJpdmVyc19pbWFnZShpbnQgeCwgaW50 IHksIGNvbnN0IGNoYXIgKmltYWdlZmlsZW5hbWUpCit7CisJRHJpdmVyICpkcnY7CisKKwlkZWJ1 ZyhSUFRfREVCVUcsICIlcyh4PSVkLCB5PSVkLCBzdHJpbmc9XCIlLjQwc1wiKSIsIF9fRlVOQ1RJ T05fXywgeCwgeSwgaW1hZ2VmaWxlbmFtZSk7CisKKwlGb3JBbGxEcml2ZXJzKGRydikgeworCQlp ZiAoZHJ2LT5pbWFnZSkKKwkJCWRydi0+aW1hZ2UoZHJ2LCB4LCB5LCBpbWFnZWZpbGVuYW1lKTsK Kwl9Cit9CmRpZmYgLXVyTiAtWCAuL2xjZHByb2MvZGlmZl9pZ25vcmUgLi9sY2Rwcm9jL3NlcnZl ci9kcml2ZXJzLmggLi9tb2RpZmllZC9zZXJ2ZXIvZHJpdmVycy5oCi0tLSAuL2xjZHByb2Mvc2Vy dmVyL2RyaXZlcnMuaAkyMDEyLTAyLTIyIDE2OjI1OjMyLjAwMDAwMDAwMCAtMDYwMAorKysgLi9t b2RpZmllZC9zZXJ2ZXIvZHJpdmVycy5oCTIwMTQtMDEtMjIgMTQ6NDE6NTYuMTcxNjYyNjI0IC0w NjAwCkBAIC03OSw2ICs3OSw4IEBACiBjb25zdCBjaGFyICoKIGRyaXZlcnNfZ2V0X2tleSh2b2lk KTsKIAordm9pZAorZHJpdmVyc19pbWFnZShpbnQgeCwgaW50IHksIGNvbnN0IGNoYXIgKmltYWdl ZmlsZW5hbWUpOwogCiAvKiBQbGVhc2UgZG9uJ3QgcmVhZCB0aGlzIGxpc3QgZXhjZXB0IHVzaW5n IHRoZSBmb2xsb3dpbmcgZnVuY3Rpb25zICovCiBleHRlcm4gTGlua2VkTGlzdCAqbG9hZGVkX2Ry aXZlcnM7CmRpZmYgLXVyTiAtWCAuL2xjZHByb2MvZGlmZl9pZ25vcmUgLi9sY2Rwcm9jL3NlcnZl ci9yZW5kZXIuYyAuL21vZGlmaWVkL3NlcnZlci9yZW5kZXIuYwotLS0gLi9sY2Rwcm9jL3NlcnZl ci9yZW5kZXIuYwkyMDEzLTAxLTE5IDA0OjI1OjA0LjAwMDAwMDAwMCAtMDYwMAorKysgLi9tb2Rp ZmllZC9zZXJ2ZXIvcmVuZGVyLmMJMjAxNC0wMS0yMiAxNDozNDo0My44NjMzMDg5MDcgLTA2MDAK QEAgLTY5LDcgKzY5LDcgQEAKIHN0YXRpYyBpbnQgcmVuZGVyX3RpdGxlKFdpZGdldCAqdywgaW50 IGxlZnQsIGludCB0b3AsIGludCByaWdodCwgaW50IGJvdHRvbSwgbG9uZyB0aW1lcik7CiBzdGF0 aWMgaW50IHJlbmRlcl9zY3JvbGxlcihXaWRnZXQgKncsIGludCBsZWZ0LCBpbnQgdG9wLCBpbnQg cmlnaHQsIGludCBib3R0b20sIGxvbmcgdGltZXIpOwogc3RhdGljIGludCByZW5kZXJfbnVtKFdp ZGdldCAqdywgaW50IGxlZnQsIGludCB0b3AsIGludCByaWdodCwgaW50IGJvdHRvbSk7Ci0KK3N0 YXRpYyBpbnQgcmVuZGVyX2ltYWdlKFdpZGdldCAqdywgaW50IGxlZnQsIGludCB0b3AsIGludCBy aWdodCwgaW50IGJvdHRvbSk7CiAKIC8qKgogICogUmVuZGVycyBhIHNjcmVlbi4gVGhlIGZvbGxv d2luZyBhY3Rpb25zIGFyZSB0YWtlbiBpbiBvcmRlcjoKQEAgLTI5MSw2ICsyOTEsOSBAQAogCQkJ CQlkcml2ZXJzX251bSh3LT54ICsgbGVmdCwgdy0+eSk7CiAJCQkJfQogCQkJCWJyZWFrOworCQkJ Y2FzZSBXSURfSU1BR0U6CisJCQkJcmVuZGVyX2ltYWdlKHcsIGxlZnQsIHRvcCwgcmlnaHQsIGJv dHRvbSk7CisJCQkJYnJlYWs7CiAJCQljYXNlIFdJRF9OT05FOgogCQkJCS8qIEZBTExUSFJPVUdI ICovCiAJCQlkZWZhdWx0OgpAQCAtNjU5LDYgKzY2MiwxNiBAQAogCXJldHVybiAwOwogfQogCitz dGF0aWMgaW50CityZW5kZXJfaW1hZ2UoV2lkZ2V0ICp3LCBpbnQgbGVmdCwgaW50IHRvcCwgaW50 IHJpZ2h0LCBpbnQgYm90dG9tKQoreworCWlmICh3ICE9IE5VTEwgJiYgdy0+dGV4dCAhPSBOVUxM KSB7CisJCWRyaXZlcnNfaW1hZ2Uody0+eCsgbGVmdCwgdy0+eSArIHRvcCwgdy0+dGV4dCk7CisJ fQorCQorCXJldHVybiAwOworfQorCiAKIGludAogc2VydmVyX21zZyhjb25zdCBjaGFyICp0ZXh0 LCBpbnQgZXhwaXJlKQpkaWZmIC11ck4gLVggLi9sY2Rwcm9jL2RpZmZfaWdub3JlIC4vbGNkcHJv Yy9zZXJ2ZXIvd2lkZ2V0LmMgLi9tb2RpZmllZC9zZXJ2ZXIvd2lkZ2V0LmMKLS0tIC4vbGNkcHJv Yy9zZXJ2ZXIvd2lkZ2V0LmMJMjAxMi0wOS0wMSAxNjoyNDozOS4wMDAwMDAwMDAgLTA1MDAKKysr IC4vbW9kaWZpZWQvc2VydmVyL3dpZGdldC5jCTIwMTQtMDEtMjIgMTQ6MzY6MDUuOTM0NzkxNjk4 IC0wNjAwCkBAIC0zOCw2ICszOCw3IEBACiAJInNjcm9sbGVyIiwJLyogV0lEX1NDUk9MTEVSICov CiAJImZyYW1lIiwJLyogV0lEX0ZSQU1FICovCiAJIm51bSIsCQkvKiBXSURfTlVNICovCisJImlt YWdlIiwgICAgLyogV0lEX0lNQUdFICovCiAJTlVMTCwJCS8qIFdJRF9OT05FICovCiB9OwogCmRp ZmYgLXVyTiAtWCAuL2xjZHByb2MvZGlmZl9pZ25vcmUgLi9sY2Rwcm9jL3NlcnZlci93aWRnZXQu aCAuL21vZGlmaWVkL3NlcnZlci93aWRnZXQuaAotLS0gLi9sY2Rwcm9jL3NlcnZlci93aWRnZXQu aAkyMDEyLTAyLTIyIDE2OjI1OjMyLjAwMDAwMDAwMCAtMDYwMAorKysgLi9tb2RpZmllZC9zZXJ2 ZXIvd2lkZ2V0LmgJMjAxNC0wMS0yMiAxNDozNjo0Ni40NzQ1ODIyMjUgLTA2MDAKQEAgLTI3LDcg KzI3LDggQEAKIAlXSURfVElUTEUsCiAJV0lEX1NDUk9MTEVSLAogCVdJRF9GUkFNRSwKLQlXSURf TlVNCisJV0lEX05VTSwKKwlXSURfSU1BR0UKIH0gV2lkZ2V0VHlwZTsKIAogCg== --047d7b5db9c4656c9504f096a67e Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ LCDproc mailing list [email protected] http://lists.omnipotent.net/mailman/listinfo/lcdproc --047d7b5db9c4656c9504f096a67e--