[Powertop] PowerTOP UI navigation enhancement.

Chris Ferron <chris.e.ferron at linux.intel.com> Tue, 11 Sep 2012 09:39:04 -0700
Newsgroups dev.linux.lists.powertop
Message-ID <[email protected]>
--===============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==--