aboutsummaryrefslogtreecommitdiffstats
path: root/test.py
diff options
context:
space:
mode:
Diffstat (limited to 'test.py')
-rwxr-xr-xtest.py105
1 files changed, 105 insertions, 0 deletions
diff --git a/test.py b/test.py
new file mode 100755
index 0000000..5286c07
--- /dev/null
+++ b/test.py
@@ -0,0 +1,105 @@
+#!/usr/bin/env python3
+# See LICENSE file for copyright and license details.
+import libgamma
+from time import sleep
+
+
+method = libgamma.list_methods(0)[0]
+assert libgamma.is_method_available(method) == True
+
+print('\033[1mMethod capabilities\033[m')
+print(libgamma.method_capabilities(method).__dict__)
+print()
+
+print('\033[1mMethod default site variable and default site\033[m')
+print(repr(libgamma.method_default_site_variable(method)))
+print(repr(libgamma.method_default_site(method)))
+print()
+
+print('\033[1mUnhexing b"0123456789ABCDEF" and b"0123456789abcdef"\033[m')
+print(repr(libgamma.unhex_edid('0123456789ABCDEF')))
+print(repr(libgamma.unhex_edid('0123456789abcdef')))
+print('\033[1mUnhexing and rehexing "0123456789abcdef"\033[m')
+print(repr(libgamma.behex_edid(libgamma.unhex_edid('0123456789abcdef'))))
+print(repr(libgamma.behex_edid_lowercase(libgamma.unhex_edid('0123456789abcdef'))))
+print(repr(libgamma.behex_edid_uppercase(libgamma.unhex_edid('0123456789abcdef'))))
+print()
+
+print('\033[1mPrinting required group ID, setting to 10, and reprinting\033[m')
+print(libgamma.group.gid)
+libgamma.group.gid = 10
+print(libgamma.group.gid)
+print()
+
+print('\033[1mPrinting required group name, setting to "group", and reprinting\033[m')
+print(repr(libgamma.group.name))
+libgamma.group.name = 'group'
+print(repr(libgamma.group.name))
+print()
+
+print('\033[1mPrint description for errors: 0, ERRNO_SET and NO_SUCH_ADJUSTMENT_METHOD\033[m')
+libgamma.perror('test', 0)
+libgamma.perror('test', libgamma.LIBGAMMA_ERRNO_SET)
+libgamma.perror('test', libgamma.LIBGAMMA_NO_SUCH_ADJUSTMENT_METHOD)
+print()
+
+print('\033[1mGetting name and value of error NO_SUCH_SITE\033[m')
+print(repr(libgamma.name_of_error(libgamma.LIBGAMMA_NO_SUCH_SITE)))
+print(repr(libgamma.value_of_error('LIBGAMMA_NO_SUCH_SITE')))
+print(libgamma.LIBGAMMA_NO_SUCH_SITE)
+print()
+
+print('\033[1mCreating errors: 1, 0, -1 and -2\033[m')
+print(libgamma.create_error(1))
+print(libgamma.create_error(0))
+print(libgamma.create_error(-1))
+print(libgamma.create_error(-2))
+print()
+
+print('\033[1mGetting partition count, crtc count for partition 0, and info for crtc 0.0\033[m')
+site = libgamma.Site(method)
+print(site.partitions_available)
+partition = libgamma.Partition(site, 0)
+print(partition.crtcs_available)
+crtc = libgamma.CRTC(partition, 0)
+info = crtc.information(~0)[0]
+print(info.__dict__)
+print()
+
+ramp_sizes = (info.red_gamma_size, info.green_gamma_size, info.blue_gamma_size)
+ramps = libgamma.GammaRamps(*ramp_sizes, depth = info.gamma_depth)
+crtc.get_gamma(ramps)
+print('\033[1mCurrent red gamma ramp\033[m')
+print(list(ramps.red))
+print()
+print('\033[1mCurrent green gamma ramp\033[m')
+print(list(ramps.green))
+print()
+print('\033[1mCurrent blue gamma ramp\033[m')
+print(list(ramps.blue))
+print()
+
+saved_red = list(ramps.red)
+saved_green = list(ramps.green)
+saved_blue = list(ramps.blue)
+
+ramps.red[:] = list(map(lambda x : x // 2, saved_red))
+ramps.green[:] = list(map(lambda x : x // 2, saved_green))
+ramps.blue[:] = list(map(lambda x : x // 2, saved_blue))
+
+crtc.set_gamma(ramps)
+
+sleep(1)
+
+ramps.red[:] = saved_red
+ramps.green[:] = saved_green
+ramps.blue[:] = saved_blue
+
+crtc.set_gamma(ramps)
+
+# If not done expressively, if in the root scope,
+# we sometimes get ignored errors on exit
+del site
+del partition
+del crtc
+del ramps