diff options
author | Tomi Valkeinen <tomi.valkeinen@ti.com> | 2019-09-24 12:52:05 +0300 |
---|---|---|
committer | Tomi Valkeinen <tomi.valkeinen@ti.com> | 2019-09-25 14:53:28 +0300 |
commit | 21de1ab0f0ed584ee99b36134f4c44e9fe0fa403 (patch) | |
tree | e960fb4ae04d2e54be73a854b2c6a138750c620c /py/tests | |
parent | 3d2b5a3250737d3674c73f9337cb10685eb8f306 (diff) |
add testmodes.py
Add testmodes.py which goes through all videomodes from a connector one
by one.
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
Diffstat (limited to 'py/tests')
-rwxr-xr-x | py/tests/testmodes.py | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/py/tests/testmodes.py b/py/tests/testmodes.py new file mode 100755 index 0000000..0508f31 --- /dev/null +++ b/py/tests/testmodes.py @@ -0,0 +1,47 @@ +#!/usr/bin/python3 + +import sys +import pykms +import argparse + +parser = argparse.ArgumentParser() +parser.add_argument("-c", "--connector", default="") +args = parser.parse_args() + +card = pykms.Card() + +res = pykms.ResourceManager(card) +conn = res.reserve_connector(args.connector) +crtc = res.reserve_crtc(conn) +plane = res.reserve_generic_plane(crtc) + +card.disable_planes() + +modes = conn.get_modes() + +def even(i): + return i & ~1 + +for mode in modes: + long_str = mode.to_string_long() + short_str = mode.to_string_short() + + print(long_str) + + modeb = mode.to_blob(card) + + fb = pykms.DumbFramebuffer(card, mode.hdisplay, mode.vdisplay, "XR24"); + pykms.draw_test_pattern(fb); + pykms.draw_text(fb, even((fb.width // 2) - (8 * len(short_str)) // 2), 4, short_str, pykms.white) + + req = pykms.AtomicReq(card) + + req.add_connector(conn, crtc) + req.add_crtc(crtc, modeb) + req.add_plane(plane, fb, crtc, dst=(0, 0, mode.hdisplay, mode.vdisplay)) + + req.commit_sync(allow_modeset = True) + + input("press enter to show next videomode\n") + +print("done") |