From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: multipart/mixed; boundary="===============0274529082189152427==" MIME-Version: 1.0 From: Chris Ferron Subject: [Powertop] PowerTOP UI navigation enhancement. Date: Tue, 11 Sep 2012 09:39:04 -0700 Message-ID: <504F6928.10301@linux.intel.com> To: powertop@lists.01.org List-ID: --===============0274529082189152427== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable This patch add more ui navigation features allowing for the scrolling of = PowerTop content for each tab. This is done by controlling the location = of the winpad, and refreshing the terminal window when needed. To do = this, the navigation keys have been updated as follows. "Arrow Keys" now scroll the tab windows "Page up/down" scroll tab windows up and down "TAB" cycles the next window tab "SHIFT+TAB" cycles the previous window tab "ENTER" toggles tunables "SPACE BAR" toggles tunables "r KEY" refresh results and resets view of tab window. Known issues: There is no handler for terminal re-sizing. The workaround is to use "r = KEY" to refresh if terminal windows size is changed mid session. --- src/cpu/abstract_cpu.cpp | 1 - src/display.cpp | 98 = ++++++++++++++++++++++++++++++++++-------------- src/display.h | 13 ++++++- src/main.cpp | 17 ++++++--- 4 files changed, 93 insertions(+), 36 deletions(-) --===============0274529082189152427== Content-Type: text/x-patch MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="0001-PowerTOP-UI-navigation-enhancement.patch" ZGlmZiAtLWdpdCBhL3NyYy9jcHUvYWJzdHJhY3RfY3B1LmNwcCBiL3NyYy9jcHUvYWJzdHJhY3Rf Y3B1LmNwcAppbmRleCA4YjRjNjUwLi5jYTY5MDFjIDEwMDY0NAotLS0gYS9zcmMvY3B1L2Fic3Ry YWN0X2NwdS5jcHAKKysrIGIvc3JjL2NwdS9hYnN0cmFjdF9jcHUuY3BwCkBAIC00MjIsNyArNDIy LDYgQEAgdm9pZCBhYnN0cmFjdF9jcHU6OnZhbGlkYXRlKHZvaWQpCiAKIAkJaWYgKGNoaWxkcmVu W2ldKSB7CiAJCQlpZiAobXlfdGltZSAhPSBjaGlsZHJlbltpXS0+dG90YWxfcHN0YXRlX3RpbWUo KSkKLQkJCQlwcmludGYoIk15ICglaSkgdGltZSAlbGx1IGlzIG5vdCB0aGUgc2FtZSBhcyBjaGls ZCAoJWkpIHRpbWUgJWxsdVxuIiwKIAkJCQkJZmlyc3RfY3B1LAogCQkJCQkodW5zaWduZWQgbG9u ZyBsb25nKW15X3RpbWUsCiAJCQkJCWNoaWxkcmVuW2ldLT5udW1iZXIsCmRpZmYgLS1naXQgYS9z cmMvZGlzcGxheS5jcHAgYi9zcmMvZGlzcGxheS5jcHAKaW5kZXggZjQ4YjUzZi4uNmExMTliYyAx MDA2NDQKLS0tIGEvc3JjL2Rpc3BsYXkuY3BwCisrKyBiL3NyYy9kaXNwbGF5LmNwcApAQCAtOTUs NyArOTUsNyBAQCBzdGF0aWMgaW50IGN1cnJlbnRfdGFiOwogCiB2b2lkIHNob3dfdGFiKHVuc2ln bmVkIGludCB0YWIpCiB7Ci0JV0lORE9XICp3aW47CisJY2xhc3MgdGFiX3dpbmRvdyAqd2luOwog CXVuc2lnbmVkIGludCBpOwogCWludCB0YWJfcG9zID0gMTc7CiAJY29uc3QgY2hhciAqYzsKQEAg LTE0NSwxMSArMTQ1LDExIEBAIHZvaWQgc2hvd190YWIodW5zaWduZWQgaW50IHRhYikKIAl3cmVm cmVzaCh0YWJfYmFyKTsKIAl3cmVmcmVzaChib3R0b21fbGluZSk7CiAKLQl3aW4gPSBnZXRfbmN1 cnNlc193aW4odGFiX25hbWVzW3RhYl0pOworCXdpbiA9IHRhYl93aW5kb3dzW3RhYl9uYW1lc1t0 YWJdXTsKIAlpZiAoIXdpbikKIAkJcmV0dXJuOwogCi0JcHJlZnJlc2god2luLCAwLCAwLCAxLCAw LCBMSU5FUyAtIDMsIENPTFMgLSAxKTsKKwlwcmVmcmVzaCh3aW4tPndpbiwgd2luLT55cGFkX3Bv cywgd2luLT54cGFkX3BvcywgMSwgMCwgTElORVMgLSAzLCBDT0xTIC0gMSk7CiB9CiAKIFdJTkRP VyAqZ2V0X25jdXJzZXNfd2luKGNvbnN0IGNoYXIgKm5hbWUpCkBAIC0xODUsNDIgKzE4NSw0MSBA QCBXSU5ET1cgKmdldF9uY3Vyc2VzX3dpbihjb25zdCBzdHJpbmcgJm5hbWUpCiAJcmV0dXJuIGdl dF9uY3Vyc2VzX3dpbihuYW1lLmNfc3RyKCkpOwogfQogCi0KLXZvaWQgc2hvd19uZXh0X3RhYih2 b2lkKQordm9pZCBzaG93X3ByZXZfdGFiKHZvaWQpCiB7Ci0JY2xhc3MgdGFiX3dpbmRvdyAqdzsK KyAgICAgICBjbGFzcyB0YWJfd2luZG93ICp3OwogCi0JaWYgKCFkaXNwbGF5KQotCQlyZXR1cm47 CisgICAgICAgaWYgKCFkaXNwbGF5KQorICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgIHcg PSB0YWJfd2luZG93c1t0YWJfbmFtZXNbY3VycmVudF90YWJdXTsKKyAgICAgICBpZiAodykKKyAg ICAgICAgICAgICAgIHctPmhpZGUoKTsKIAotCXcgPSB0YWJfd2luZG93c1t0YWJfbmFtZXNbY3Vy cmVudF90YWJdXTsKLQlpZiAodykKLQkJdy0+aGlkZSgpOworICAgICAgIGN1cnJlbnRfdGFiIC0t OworICAgICAgIGlmIChjdXJyZW50X3RhYiA8IDApCisgICAgICAgICAgICAgICBjdXJyZW50X3Rh YiA9IHRhYl9uYW1lcy5zaXplKCkgLSAxOwogCi0JY3VycmVudF90YWIgKys7Ci0JaWYgKGN1cnJl bnRfdGFiID49IChpbnQpdGFiX25hbWVzLnNpemUoKSkKLQkJY3VycmVudF90YWIgPSAwOwotCi0J dyA9IHRhYl93aW5kb3dzW3RhYl9uYW1lc1tjdXJyZW50X3RhYl1dOwotCWlmICh3KQotCQl3LT5l eHBvc2UoKTsKKyAgICAgICB3ID0gdGFiX3dpbmRvd3NbdGFiX25hbWVzW2N1cnJlbnRfdGFiXV07 CisgICAgICAgaWYgKHcpCisgICAgICAgICAgICAgICB3LT5leHBvc2UoKTsKIAotCXNob3dfdGFi KGN1cnJlbnRfdGFiKTsKKyAgICAgICBzaG93X3RhYihjdXJyZW50X3RhYik7CiB9CiAKLXZvaWQg c2hvd19wcmV2X3RhYih2b2lkKQordm9pZCBzaG93X25leHRfdGFiKHZvaWQpCiB7CiAJY2xhc3Mg dGFiX3dpbmRvdyAqdzsKIAogCWlmICghZGlzcGxheSkKIAkJcmV0dXJuOworCiAJdyA9IHRhYl93 aW5kb3dzW3RhYl9uYW1lc1tjdXJyZW50X3RhYl1dOwogCWlmICh3KQogCQl3LT5oaWRlKCk7CiAK LQljdXJyZW50X3RhYiAtLTsKLQlpZiAoY3VycmVudF90YWIgPCAwKQotCQljdXJyZW50X3RhYiA9 IHRhYl9uYW1lcy5zaXplKCkgLSAxOworCWN1cnJlbnRfdGFiICsrOworCWlmIChjdXJyZW50X3Rh YiA+PSAoaW50KXRhYl9uYW1lcy5zaXplKCkpCisJCWN1cnJlbnRfdGFiID0gMDsKIAogCXcgPSB0 YWJfd2luZG93c1t0YWJfbmFtZXNbY3VycmVudF90YWJdXTsKIAlpZiAodykKQEAgLTI0MSw4ICsy NDAsMTYgQEAgdm9pZCBjdXJzb3JfZG93bih2b2lkKQogCWNsYXNzIHRhYl93aW5kb3cgKnc7CiAK IAl3ID0gdGFiX3dpbmRvd3NbdGFiX25hbWVzW2N1cnJlbnRfdGFiXV07Ci0JaWYgKHcpCi0JCXct PmN1cnNvcl9kb3duKCk7CisJaWYgKHcpIHsKKwkJaWYgKHRhYl9uYW1lc1tjdXJyZW50X3RhYl0g PT0gIlR1bmFibGVzIikgeworCSAgICAgICAgICAgICAgICBpZiAoKHctPmN1cnNvcl9wb3MgKyA3 KSA+PSBMSU5FUykgeyAKKwkJCQlwcmVmcmVzaCh3LT53aW4sICsrdy0+eXBhZF9wb3MsIHctPnhw YWRfcG9zLCAxLCAwLCBMSU5FUyAtIDMsIENPTFMgLSAxKTsKKwkJCX0JCQkKKwkJCQl3LT5jdXJz b3JfZG93bigpOyAKKwkJfSBlbHNlIHsKKwkJCXByZWZyZXNoKHctPndpbiwgKyt3LT55cGFkX3Bv cywgdy0+eHBhZF9wb3MsIDEsIDAsIExJTkVTIC0gMywgQ09MUyAtIDEpOworCQl9CisJfQogCiAJ c2hvd19jdXJfdGFiKCk7CiB9CkBAIC0yNTMsMTIgKzI2MCw0NSBAQCB2b2lkIGN1cnNvcl91cCh2 b2lkKQogCiAJdyA9IHRhYl93aW5kb3dzW3RhYl9uYW1lc1tjdXJyZW50X3RhYl1dOwogCi0JaWYg KHcpCi0JCXctPmN1cnNvcl91cCgpOwotCisJaWYgKHcpIHsKKwkJdy0+Y3Vyc29yX3VwKCk7IAor CQlpZih3LT55cGFkX3BvcyA+IDApIHsKKwkgICAgICAgICAgICAgICAgaWYgKHRhYl9uYW1lc1tj dXJyZW50X3RhYl0gPT0gIlR1bmFibGVzIikgeworICAgICAgICAJICAgICAgICAgICAgICAgcHJl ZnJlc2gody0+d2luLCAtLXctPnlwYWRfcG9zLCB3LT54cGFkX3BvcywgMSwgMCwgTElORVMgLSAz LCBDT0xTIC0gMSk7CisJICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgIAkgICAgICAg ICAgICAgICBwcmVmcmVzaCh3LT53aW4sIC0tdy0+eXBhZF9wb3MsIHctPnhwYWRfcG9zLCAxLCAw LCBMSU5FUyAtIDMsIENPTFMgLSAxKTsKKwkgICAgICAgICAgICAgICAgfQorCQl9CisJfQorCQog CXNob3dfY3VyX3RhYigpOwogfQogCit2b2lkIGN1cnNvcl9sZWZ0KHZvaWQpCit7CisgICAgICAg IGNsYXNzIHRhYl93aW5kb3cgKnc7CisKKwl3ID0gdGFiX3dpbmRvd3NbdGFiX25hbWVzW2N1cnJl bnRfdGFiXV07CisJCisJaWYgKHcpIHsJCQkKKwkJaWYgKHctPnhwYWRfcG9zID4gMCkgeworCQkJ cHJlZnJlc2gody0+d2luLCB3LT55cGFkX3BvcywtLXctPnhwYWRfcG9zLCAxLCAwLCBMSU5FUyAt IDMsIENPTFMgLSAxKTsKKwkJfQorCX0KK30KKwordm9pZCBjdXJzb3JfcmlnaHQodm9pZCkgCit7 CisgICAgICAgIGNsYXNzIHRhYl93aW5kb3cgKnc7CisKKwl3ID0gdGFiX3dpbmRvd3NbdGFiX25h bWVzW2N1cnJlbnRfdGFiXV07CisKKwlpZiAodykgeworCQlwcmVmcmVzaCh3LT53aW4sIHctPnlw YWRfcG9zLCArK3ctPnhwYWRfcG9zLCAxLCAwLCBMSU5FUyAtIDMsIENPTFMgLSAxKTsKKwl9CisJ Cit9CisKIHZvaWQgY3Vyc29yX2VudGVyKHZvaWQpCiB7CiAJY2xhc3MgdGFiX3dpbmRvdyAqdzsK QEAgLTI3OSw2ICszMTksOCBAQCB2b2lkIHdpbmRvd19yZWZyZXNoKCkKIAl3ID0gdGFiX3dpbmRv d3NbdGFiX25hbWVzW2N1cnJlbnRfdGFiXV07CiAKIAlpZiAodykgeworCQl3LT55cGFkX3BvcyA9 IDA7CisJCXctPnhwYWRfcG9zID0gMDsKIAkJdy0+d2luZG93X3JlZnJlc2goKTsKIAkJdy0+cmVw YWludCgpOwogCX0KZGlmZiAtLWdpdCBhL3NyYy9kaXNwbGF5LmggYi9zcmMvZGlzcGxheS5oCmlu ZGV4IDMzYWFhZTEuLjAwODg3YWEgMTAwNjQ0Ci0tLSBhL3NyYy9kaXNwbGF5LmgKKysrIGIvc3Jj L2Rpc3BsYXkuaApAQCAtNDEsNiArNDEsOCBAQCBleHRlcm4gdm9pZCBzaG93X3ByZXZfdGFiKHZv aWQpOwogZXh0ZXJuIHZvaWQgc2hvd19jdXJfdGFiKHZvaWQpOwogZXh0ZXJuIHZvaWQgY3Vyc29y X3VwKHZvaWQpOwogZXh0ZXJuIHZvaWQgY3Vyc29yX2Rvd24odm9pZCk7CitleHRlcm4gdm9pZCBj dXJzb3JfcmlnaHQodm9pZCk7CitleHRlcm4gdm9pZCBjdXJzb3JfbGVmdCh2b2lkKTsKIGV4dGVy biB2b2lkIGN1cnNvcl9lbnRlcih2b2lkKTsKIGV4dGVybiB2b2lkIHdpbmRvd19yZWZyZXNoKHZv aWQpOwogCkBAIC00OCwxMCArNTAsMTcgQEAgY2xhc3MgdGFiX3dpbmRvdyB7CiBwdWJsaWM6CiAJ aW50IGN1cnNvcl9wb3M7CiAJaW50IGN1cnNvcl9tYXg7CisJaW50IHhwYWRfcG9zLCB5cGFkX3Bv czsgCiAJV0lORE9XICp3aW47CiAKLQl2aXJ0dWFsIHZvaWQgY3Vyc29yX2Rvd24odm9pZCkgeyBp ZiAoY3Vyc29yX3BvcyA8IGN1cnNvcl9tYXggKSBjdXJzb3JfcG9zKys7IHJlcGFpbnQoKTsgfSA7 Ci0JdmlydHVhbCB2b2lkIGN1cnNvcl91cCh2b2lkKSB7IGlmIChjdXJzb3JfcG9zID4gMCkgY3Vy c29yX3Bvcy0tOyByZXBhaW50KCk7IH07CisJdmlydHVhbCB2b2lkIGN1cnNvcl9kb3duKHZvaWQp IHsgCisJCWlmIChjdXJzb3JfcG9zIDwgY3Vyc29yX21heCApIGN1cnNvcl9wb3MrKzsgcmVwYWlu dCgpOyAKKwl9IDsKKwl2aXJ0dWFsIHZvaWQgY3Vyc29yX3VwKHZvaWQpIHsgCisJCWlmIChjdXJz b3JfcG9zID4gMCkgY3Vyc29yX3Bvcy0tOyByZXBhaW50KCk7IAorCX07CisJdmlydHVhbCB2b2lk IGN1cnNvcl9sZWZ0KHZvaWQpIHsgfTsKKwl2aXJ0dWFsIHZvaWQgY3Vyc29yX3JpZ2h0KHZvaWQp IHsgfTsKIAogCXZpcnR1YWwgdm9pZCBjdXJzb3JfZW50ZXIodm9pZCkgeyB9OwogCXZpcnR1YWwg dm9pZCB3aW5kb3dfcmVmcmVzaCgpIHsgfTsKZGlmZiAtLWdpdCBhL3NyYy9tYWluLmNwcCBiL3Ny Yy9tYWluLmNwcAppbmRleCBjZjQ3YjRlLi5lZGM0MTQ3IDEwMDY0NAotLS0gYS9zcmMvbWFpbi5j cHAKKysrIGIvc3JjL21haW4uY3BwCkBAIC0xMzUsMjIgKzEzNSwyOSBAQCBzdGF0aWMgdm9pZCBk b19zbGVlcChpbnQgc2Vjb25kcykKIAkJaGFsZmRlbGF5KGRlbHRhICogMTApOwogCiAJCWMgPSBn ZXRjaCgpOwotCisJCXByaW50ZigiYyAoJWkpIiwgYyk7IAogCQlzd2l0Y2ggKGMpIHsKLQkJY2Fz ZSBLRVlfTlBBR0U6CisJCWNhc2UgMzUzOiAKKwkJCXNob3dfcHJldl90YWIoKTsKKwkJCWJyZWFr OworCQljYXNlIDk6CisJCQlzaG93X25leHRfdGFiKCk7IAorCQkJYnJlYWs7CiAJCWNhc2UgS0VZ X1JJR0hUOgotCQkJc2hvd19uZXh0X3RhYigpOworCQkJY3Vyc29yX3JpZ2h0KCk7IAogCQkJYnJl YWs7Ci0JCWNhc2UgS0VZX1BQQUdFOgogCQljYXNlIEtFWV9MRUZUOgotCQkJc2hvd19wcmV2X3Rh YigpOworCQkJY3Vyc29yX2xlZnQoKTsgCiAJCQlicmVhazsKKwkJY2FzZSBLRVlfTlBBR0U6CiAJ CWNhc2UgS0VZX0RPV046CiAJCQljdXJzb3JfZG93bigpOwogCQkJYnJlYWs7CisJCWNhc2UgS0VZ X1BQQUdFOgogCQljYXNlIEtFWV9VUDoKIAkJCWN1cnNvcl91cCgpOwogCQkJYnJlYWs7CisJCWNh c2UgMzI6CiAJCWNhc2UgMTA6CiAJCQljdXJzb3JfZW50ZXIoKTsKIAkJCWJyZWFrOwoK --===============0274529082189152427==--